model_data <- long_data %>% 
  select(sub_id, bfi_number, cand_pref, ingroup_ident, threat, 
         self, target_number_collapsed, target_bfi_value, 
         condition_order, covid1, covid2, covid3, target_group,
         ingroup_ident_c, self_c, threat_c, gender, ethnicity, political_ident) %>% 
  drop_na()

contrasts(model_data$target_group) <- contr.sum(2)
model_base <- lmer(target_bfi_value ~ self_c*target_number_collapsed + (self_c|sub_id), data = model_data)
mod_vartest_ident <- lmer(target_bfi_value ~ self_c*target_number_collapsed*ingroup_ident_c + (self_c |sub_id), data = model_data)
mod_vartest_threat <- lmer(target_bfi_value ~ self_c*target_number_collapsed*threat_c + (self_c |sub_id), data = model_data)
mod_vartest_order <- lmer(target_bfi_value ~ self_c*target_number_collapsed*condition_order + (self_c |sub_id), data = model_data)

Residuals

Instructions

# checking normality of conditional residuals
qqnorm(residuals(model_base), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects (here random slope:
qqnorm(ranef(model_base)$sub_id$self_c,
       main="Q-Q plot for the self random effect")

 # random intercept
qqnorm(ranef(model_base)$sub_id$`(Intercept)`,
       main="Q-Q plot for the target random effect")

plot_model(model_base, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

In-group identification

# checking normality of conditional residuals
qqnorm(residuals(mod_vartest_ident), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects (here random slope:
qqnorm(ranef(mod_vartest_ident)$sub_id$self_c,
       main="Q-Q plot for the self random effect")

 # random intercept
qqnorm(ranef(mod_vartest_ident)$sub_id$`(Intercept)`,
       main="Q-Q plot for the intercept")

plot_model(mod_vartest_ident, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

Group-level threat

# checking normality of conditional residuals
qqnorm(residuals(mod_vartest_threat), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects (here random slope:
qqnorm(ranef(mod_vartest_threat)$sub_id$self_c,
       main="Q-Q plot for the self random effect")

 # random intercept
qqnorm(ranef(mod_vartest_threat)$sub_id$`(Intercept)`,
       main="Q-Q plot for the intercept")

plot_model(mod_vartest_threat, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

Target order

# checking normality of conditional residuals
qqnorm(residuals(mod_vartest_order), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects (here random slope:
qqnorm(ranef(mod_vartest_order)$sub_id$self_c,
       main="Q-Q plot for the self random effect")

 # random intercept
qqnorm(ranef(mod_vartest_order)$sub_id$`(Intercept)`,
       main="Q-Q plot for the intercept")

plot_model(mod_vartest_order, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

Multicolinearity

cor_bfi <- model_data %>% 
  select(self, target_bfi_value, threat, ingroup_ident) %>% 
  unique() %>% 
  rename("BFI: Self" = self,
         "BFI: Target" = target_bfi_value,
         "Group-level threat" = threat,
         "In-group identification" = ingroup_ident)

correlations_preds <- cor(cor_bfi)

corrplot(correlations_preds, 
         is.corr = TRUE, 
         #method = "number", 
         method = 'color',
         tl.cex = .85,
         tl.col = 'black',
         addgrid.col = 'white',
         addCoef.col = 'grey50',
         type = 'lower')

Normality - BFI

hist(long_data$self)

hist(long_data$target_bfi_value)

LS0tCnRpdGxlOiAiU3VwcGxlbWVudGFsIgpvdXRwdXQ6IAogICAgaHRtbF9kb2N1bWVudDoKICAgICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgICB0b2M6IFRSVUUKICAgICAgdG9jX2Zsb2F0OgogICAgICAgIGNvbGxhcHNlZDogRkFMU0UKICAgICAgdG9jX2RlcHRoOiAxCiAgICAgIGNvZGVfZm9sZGluZzogaGlkZQplZGl0b3Jfb3B0aW9uczogCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUKLS0tCgpgYGB7ciBkYXRhIHByZXAsIGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIGVycm9yID0gRkFMU0V9CiMgTG9hZGluZyBwYWNrYWdlcwpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KGxtZTQpCmxpYnJhcnkobmxtZSkKbGlicmFyeShzalBsb3QpCmxpYnJhcnkoZWZmZWN0cykKbGlicmFyeShtYWdyaXR0cikgIyBwYXJ0IG9mIHRoZSB0aWR5dmVyc2UgYnV0IG11c3QgYmUgcmVhZCBpbiBvbiBpdHMgb3duCmxpYnJhcnkocGFyYW1ldGVycykKbGlicmFyeShkcGx5cikKbGlicmFyeSh0aWR5cikKbGlicmFyeShyaW8pCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShlbW1lYW5zKQpsaWJyYXJ5KGNvcnJwbG90KQoKIyBGdW5jdGlvbnMgdG8gY2xlYW4gZG9jdW1lbnQsIGdldCBkYXRhIGZyb20gd2lkZSB0byBsb25nIGZvcm1hdApzb3VyY2UoImZ1bmN0aW9ucy9DbGVhbmluZy5SIikKCiMgU2V0dGluZyBnbG9iYWwgY2h1bmsgb3B0aW9ucwprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nID0gRkFMU0UpCgpvcHRpb25zKHNjaXBlbiA9IDk5OSkKCiMgSW1wb3J0aW5nIGRhdGEKd2lkZV9yYXcgPC0gaW1wb3J0KCJkYXRhL2FuYWxvZzJfd2lkZV9wdCB0byByZW1vdmUuY3N2IikgCgojIENsZWFuaW5nIGRhdGEgdXNpbmcgZnVuY3Rpb25zCndpZGVfZGF0YV9jbGVhbiA8LSB3aWRlX2ZhY3Rvcl9jbGVhbih3aWRlX3JhdykKCmxvbmdfZGF0YSA8LSB3aWRlX3RvX2xvbmcod2lkZV9kYXRhX2NsZWFuKQpgYGAKCmBgYHtyfQptb2RlbF9kYXRhIDwtIGxvbmdfZGF0YSAlPiUgCiAgc2VsZWN0KHN1Yl9pZCwgYmZpX251bWJlciwgY2FuZF9wcmVmLCBpbmdyb3VwX2lkZW50LCB0aHJlYXQsIAogICAgICAgICBzZWxmLCB0YXJnZXRfbnVtYmVyX2NvbGxhcHNlZCwgdGFyZ2V0X2JmaV92YWx1ZSwgCiAgICAgICAgIGNvbmRpdGlvbl9vcmRlciwgY292aWQxLCBjb3ZpZDIsIGNvdmlkMywgdGFyZ2V0X2dyb3VwLAogICAgICAgICBpbmdyb3VwX2lkZW50X2MsIHNlbGZfYywgdGhyZWF0X2MsIGdlbmRlciwgZXRobmljaXR5LCBwb2xpdGljYWxfaWRlbnQpICU+JSAKICBkcm9wX25hKCkKCmNvbnRyYXN0cyhtb2RlbF9kYXRhJHRhcmdldF9ncm91cCkgPC0gY29udHIuc3VtKDIpCm1vZGVsX2Jhc2UgPC0gbG1lcih0YXJnZXRfYmZpX3ZhbHVlIH4gc2VsZl9jKnRhcmdldF9udW1iZXJfY29sbGFwc2VkICsgKHNlbGZfY3xzdWJfaWQpLCBkYXRhID0gbW9kZWxfZGF0YSkKbW9kX3ZhcnRlc3RfaWRlbnQgPC0gbG1lcih0YXJnZXRfYmZpX3ZhbHVlIH4gc2VsZl9jKnRhcmdldF9udW1iZXJfY29sbGFwc2VkKmluZ3JvdXBfaWRlbnRfYyArIChzZWxmX2MgfHN1Yl9pZCksIGRhdGEgPSBtb2RlbF9kYXRhKQptb2RfdmFydGVzdF90aHJlYXQgPC0gbG1lcih0YXJnZXRfYmZpX3ZhbHVlIH4gc2VsZl9jKnRhcmdldF9udW1iZXJfY29sbGFwc2VkKnRocmVhdF9jICsgKHNlbGZfYyB8c3ViX2lkKSwgZGF0YSA9IG1vZGVsX2RhdGEpCm1vZF92YXJ0ZXN0X29yZGVyIDwtIGxtZXIodGFyZ2V0X2JmaV92YWx1ZSB+IHNlbGZfYyp0YXJnZXRfbnVtYmVyX2NvbGxhcHNlZCpjb25kaXRpb25fb3JkZXIgKyAoc2VsZl9jIHxzdWJfaWQpLCBkYXRhID0gbW9kZWxfZGF0YSkKCmBgYAoKIyBSZXNpZHVhbHMKCiMjIEluc3RydWN0aW9ucwoKYGBge3J9CiMgY2hlY2tpbmcgbm9ybWFsaXR5IG9mIGNvbmRpdGlvbmFsIHJlc2lkdWFscwpxcW5vcm0ocmVzaWR1YWxzKG1vZGVsX2Jhc2UpLCBtYWluPSJRLVEgcGxvdCBmb3IgY29uZGl0aW9uYWwgcmVzaWR1YWxzIikKCiMgY2hlY2tpbmcgdGhlIG5vcm1hbGl0eSBvZiB0aGUgcmFuZG9tIGVmZmVjdHMgKGhlcmUgcmFuZG9tIHNsb3BlOgpxcW5vcm0ocmFuZWYobW9kZWxfYmFzZSkkc3ViX2lkJHNlbGZfYywKICAgICAgIG1haW49IlEtUSBwbG90IGZvciB0aGUgc2VsZiByYW5kb20gZWZmZWN0IikKICMgcmFuZG9tIGludGVyY2VwdApxcW5vcm0ocmFuZWYobW9kZWxfYmFzZSkkc3ViX2lkJGAoSW50ZXJjZXB0KWAsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHRhcmdldCByYW5kb20gZWZmZWN0IikKCnBsb3RfbW9kZWwobW9kZWxfYmFzZSwgdHlwZT0nZGlhZycpCmBgYAoKIyMgSW4tZ3JvdXAgaWRlbnRpZmljYXRpb24KCmBgYHtyfQojIGNoZWNraW5nIG5vcm1hbGl0eSBvZiBjb25kaXRpb25hbCByZXNpZHVhbHMKcXFub3JtKHJlc2lkdWFscyhtb2RfdmFydGVzdF9pZGVudCksIG1haW49IlEtUSBwbG90IGZvciBjb25kaXRpb25hbCByZXNpZHVhbHMiKQoKIyBjaGVja2luZyB0aGUgbm9ybWFsaXR5IG9mIHRoZSByYW5kb20gZWZmZWN0cyAoaGVyZSByYW5kb20gc2xvcGU6CnFxbm9ybShyYW5lZihtb2RfdmFydGVzdF9pZGVudCkkc3ViX2lkJHNlbGZfYywKICAgICAgIG1haW49IlEtUSBwbG90IGZvciB0aGUgc2VsZiByYW5kb20gZWZmZWN0IikKICMgcmFuZG9tIGludGVyY2VwdApxcW5vcm0ocmFuZWYobW9kX3ZhcnRlc3RfaWRlbnQpJHN1Yl9pZCRgKEludGVyY2VwdClgLAogICAgICAgbWFpbj0iUS1RIHBsb3QgZm9yIHRoZSBpbnRlcmNlcHQiKQoKcGxvdF9tb2RlbChtb2RfdmFydGVzdF9pZGVudCwgdHlwZT0nZGlhZycpCmBgYAoKIyMgR3JvdXAtbGV2ZWwgdGhyZWF0CgpgYGB7cn0KIyBjaGVja2luZyBub3JtYWxpdHkgb2YgY29uZGl0aW9uYWwgcmVzaWR1YWxzCnFxbm9ybShyZXNpZHVhbHMobW9kX3ZhcnRlc3RfdGhyZWF0KSwgbWFpbj0iUS1RIHBsb3QgZm9yIGNvbmRpdGlvbmFsIHJlc2lkdWFscyIpCgojIGNoZWNraW5nIHRoZSBub3JtYWxpdHkgb2YgdGhlIHJhbmRvbSBlZmZlY3RzIChoZXJlIHJhbmRvbSBzbG9wZToKcXFub3JtKHJhbmVmKG1vZF92YXJ0ZXN0X3RocmVhdCkkc3ViX2lkJHNlbGZfYywKICAgICAgIG1haW49IlEtUSBwbG90IGZvciB0aGUgc2VsZiByYW5kb20gZWZmZWN0IikKICMgcmFuZG9tIGludGVyY2VwdApxcW5vcm0ocmFuZWYobW9kX3ZhcnRlc3RfdGhyZWF0KSRzdWJfaWQkYChJbnRlcmNlcHQpYCwKICAgICAgIG1haW49IlEtUSBwbG90IGZvciB0aGUgaW50ZXJjZXB0IikKCnBsb3RfbW9kZWwobW9kX3ZhcnRlc3RfdGhyZWF0LCB0eXBlPSdkaWFnJykKYGBgCgojIyBUYXJnZXQgb3JkZXIKCmBgYHtyfQojIGNoZWNraW5nIG5vcm1hbGl0eSBvZiBjb25kaXRpb25hbCByZXNpZHVhbHMKcXFub3JtKHJlc2lkdWFscyhtb2RfdmFydGVzdF9vcmRlciksIG1haW49IlEtUSBwbG90IGZvciBjb25kaXRpb25hbCByZXNpZHVhbHMiKQoKIyBjaGVja2luZyB0aGUgbm9ybWFsaXR5IG9mIHRoZSByYW5kb20gZWZmZWN0cyAoaGVyZSByYW5kb20gc2xvcGU6CnFxbm9ybShyYW5lZihtb2RfdmFydGVzdF9vcmRlcikkc3ViX2lkJHNlbGZfYywKICAgICAgIG1haW49IlEtUSBwbG90IGZvciB0aGUgc2VsZiByYW5kb20gZWZmZWN0IikKICMgcmFuZG9tIGludGVyY2VwdApxcW5vcm0ocmFuZWYobW9kX3ZhcnRlc3Rfb3JkZXIpJHN1Yl9pZCRgKEludGVyY2VwdClgLAogICAgICAgbWFpbj0iUS1RIHBsb3QgZm9yIHRoZSBpbnRlcmNlcHQiKQoKcGxvdF9tb2RlbChtb2RfdmFydGVzdF9vcmRlciwgdHlwZT0nZGlhZycpCmBgYAoKIyBNdWx0aWNvbGluZWFyaXR5CgpgYGB7cn0KY29yX2JmaSA8LSBtb2RlbF9kYXRhICU+JSAKICBzZWxlY3Qoc2VsZiwgdGFyZ2V0X2JmaV92YWx1ZSwgdGhyZWF0LCBpbmdyb3VwX2lkZW50KSAlPiUgCiAgdW5pcXVlKCkgJT4lIAogIHJlbmFtZSgiQkZJOiBTZWxmIiA9IHNlbGYsCiAgICAgICAgICJCRkk6IFRhcmdldCIgPSB0YXJnZXRfYmZpX3ZhbHVlLAogICAgICAgICAiR3JvdXAtbGV2ZWwgdGhyZWF0IiA9IHRocmVhdCwKICAgICAgICAgIkluLWdyb3VwIGlkZW50aWZpY2F0aW9uIiA9IGluZ3JvdXBfaWRlbnQpCgpjb3JyZWxhdGlvbnNfcHJlZHMgPC0gY29yKGNvcl9iZmkpCgpjb3JycGxvdChjb3JyZWxhdGlvbnNfcHJlZHMsIAogICAgICAgICBpcy5jb3JyID0gVFJVRSwgCiAgICAgICAgICNtZXRob2QgPSAibnVtYmVyIiwgCiAgICAgICAgIG1ldGhvZCA9ICdjb2xvcicsCiAgICAgICAgIHRsLmNleCA9IC44NSwKICAgICAgICAgdGwuY29sID0gJ2JsYWNrJywKICAgICAgICAgYWRkZ3JpZC5jb2wgPSAnd2hpdGUnLAogICAgICAgICBhZGRDb2VmLmNvbCA9ICdncmV5NTAnLAogICAgICAgICB0eXBlID0gJ2xvd2VyJykKYGBgCgojIE5vcm1hbGl0eSAtIEJGSQoKYGBge3J9Cmhpc3QobG9uZ19kYXRhJHNlbGYpCgpoaXN0KGxvbmdfZGF0YSR0YXJnZXRfYmZpX3ZhbHVlKQoKYGBg